home *** CD-ROM | disk | FTP | other *** search
/ PC World Komputer 2010 April / PCWorld0410.iso / hity wydania / Ubuntu 9.10 PL / karmelkowy-koliberek-desktop-9.10-i386-PL.iso / casper / filesystem.squashfs / var / lib / dpkg / info / base-passwd.postinst < prev    next >
Text File  |  2008-08-19  |  3KB  |  130 lines

  1. #! /bin/sh
  2.  
  3. set -e
  4.  
  5. changes=0
  6.  
  7. askyesno () {
  8.     if [ "$DEBIAN_FRONTEND" = "noninteractive" ] ; then
  9.         a=y
  10.         return
  11.     fi
  12.  
  13.     while : ; do
  14.         echo -n "$1 "
  15.         read a || true
  16.         if [ "$a" = "" ] ; then
  17.             a="y"
  18.         fi
  19.         a=`echo $a | tr A-Z a-z`
  20.         if [ "$a" = "y" ] || [ "$a" = "n" ] ; then
  21.             break
  22.         fi
  23.         echo "Illegal answer"
  24.     done
  25. }
  26.  
  27. # A cut-down version of 'which' from debianutils.
  28. searchpath () {
  29.     PROGRAM="$1"
  30.     IFS_SAVE="$IFS"
  31.     IFS=:
  32.     RET=1
  33.     for ELEMENT in $PATH; do
  34.         if [ -z "$ELEMENT" ]; then
  35.             ELEMENT=.
  36.         fi
  37.         if [ -f "$ELEMENT/$PROGRAM" ] && \
  38.            [ -x "$ELEMENT/$PROGRAM" ]; then
  39.             RET=0
  40.             break
  41.         fi
  42.     done
  43.     IFS="$IFS_SAVE"
  44.     return "$RET"
  45. }
  46.  
  47.  
  48. if [ ! "$1" = "configure" ] ; then
  49.     exit 0
  50. fi
  51.  
  52. if [ ! -e /etc/passwd ] ; then
  53.     cp /usr/share/base-passwd/passwd.master /etc/passwd
  54. fi
  55.  
  56. if [ ! -e /etc/group ] ; then
  57.     cp /usr/share/base-passwd/group.master /etc/group
  58. fi
  59.  
  60. if [ "$2" = "3.2.2" ] && [ -f /etc/passwd.org ] ; then
  61.     cat <<EOF
  62.  
  63. You are upgrading from version 3.2.2 of base-passwd which had a nasty
  64. bug: it swapped the uid and gid of local accounts. If you have not
  65. fixed this problem manually I can undo the changes by restoring your
  66. previous passwd file from the backup /etc/passwd.org.
  67.  
  68. EOF
  69.  
  70.     askyesno "Should I restore your passwd? [Y/n]"
  71.  
  72.     if [ "$a" = "y" ] ; then
  73.         cat /etc/passwd.org > /etc/passwd
  74.         changes=1
  75.     fi
  76. fi
  77.  
  78. tmp=`tempfile`
  79. if ! update-passwd --dry-run > $tmp ; then
  80.     cat <<EOF
  81.  
  82. update-passwd has found some differences between your system accounts
  83. and the current Debian defaults. It is advisable to allow update-passwd
  84. to change your system; without those changes some packages might not work
  85. correctly.  For more documentation on the Debian account policies please
  86. see /usr/share/doc/base-passwd/README.
  87.  
  88. The list of proposed changes is:
  89.  
  90. EOF
  91.     
  92.     cat $tmp
  93.     cat <<EOF
  94.  
  95. It is highly recommended that you allow update-passwd to make these changes
  96. (a backup file of modified files is made with the extension .org so you can
  97. always restore the current settings).
  98.  
  99. EOF
  100.     askyesno "May I update your system? [Y/n]"
  101. fi
  102.  
  103. rm -f $tmp
  104.  
  105. if [ "$a" = "y" ] ; then
  106.     echo "Okay, I am going to make the necessary updates now"
  107.     update-passwd --verbose
  108.     changes=1
  109. elif [ "$a" = "n" ] ; then
  110.     cat <<EOF
  111.  
  112. Okay, I will not update your system. If you want to make this update later
  113. please check the update-passwd utility.
  114.  
  115. EOF
  116. fi
  117.  
  118. if [ "$changes" -gt 0 ] ; then
  119.     if searchpath nscd; then
  120.         nscd -i passwd -i group || true
  121.     fi
  122. fi
  123.  
  124. if searchpath install-docs; then
  125.     install-docs -i /usr/share/doc-base/users-and-groups
  126. fi
  127.  
  128. exit 0
  129.  
  130.